left of '->X' must point to class/struct/union错误是怎么回事啊?
来源:百度知道 编辑:UC知道 时间:2024/06/07 11:16:02
/* example1.c */
#include <stdio.h>
#include <math.h>
#include "emd.h"
float dist(feature_t *F1, feature_t *F2)
{
int dX = F1->X - F2->X, dY = F1->Y - F2->Y, dZ = F1->Z - F2->Z;
return sqrt(dX*dX + dY*dY + dZ*dZ);
}
main()
{
feature_t f1[4] = { {100,40,22}, {211,20,2}, {32,190,150}, {2,100,100} },
f2[3] = { {0,0,0}, {50,100,80}, {255,255,255} };
float w1[5] = { 0.4, 0.3, 0.2, 0.1 },
w2[3] = { 0.5, 0.3, 0.2 };
signature_t s1 = { 4, f1, w1},
s2 = { 3, f2, w2};
float e;
e = emd(&s1, &s2, dist, 0, 0);
printf("emd=%f\n", e);
}
总提示错误,请高手指教要怎么改啊?
头文件中定义了 typedef int feature_t;
#include <stdio.h>
#include <math.h>
#include "emd.h"
float dist(feature_t *F1, feature_t *F2)
{
int dX = F1->X - F2->X, dY = F1->Y - F2->Y, dZ = F1->Z - F2->Z;
return sqrt(dX*dX + dY*dY + dZ*dZ);
}
main()
{
feature_t f1[4] = { {100,40,22}, {211,20,2}, {32,190,150}, {2,100,100} },
f2[3] = { {0,0,0}, {50,100,80}, {255,255,255} };
float w1[5] = { 0.4, 0.3, 0.2, 0.1 },
w2[3] = { 0.5, 0.3, 0.2 };
signature_t s1 = { 4, f1, w1},
s2 = { 3, f2, w2};
float e;
e = emd(&s1, &s2, dist, 0, 0);
printf("emd=%f\n", e);
}
总提示错误,请高手指教要怎么改啊?
头文件中定义了 typedef int feature_t;
当然不能这麼用了
你feature_t只是1个int
除非你的feature_t是一个结构,里面有成员 X
如:
typedef struct
{
int X;
int Y;
int Z;
}feature_t;
feature_t结构或者类你定义多了吗??
报错是说:
'->X'的左面必须是指向结构、类或者联合体的指针。
那就是了。。你的feature_t是int,
一个int指针怎么会有成员X呢。。。